import types #添加方法的库
def dymicMethod(self):
    print('{}的体重是：{}kg在{}读大学'.format(self.name,self.weight,Student.school))
@classmethod
def classTest(cls):
    print('这是一个类方法')
    pass
@staticmethod
def staticMethodTest():
    print('这是一个静态方法')
    pass
class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
        pass
    def __str__(self):
        return '{}今年{}岁了'.format(self.name,self.age)
    pass
print('添加类方法')
Student.TestMethod=classTest
Student.TestMethod()
print('添加类方法结束')
print('添加静态方法')
Student.staticMethodTest=staticMethodTest
Student.staticMethodTest()
print('添加静态方法结束')
zyh=Student('张艳华',20)
zyh.weight=50#动态添加实例属性weight归该实例对象所有
zyh.printInfo=types.MethodType(dymicMethod,zyh)#动态添加实例方法(前面是添加的方法，后面是添加给的对象)
print('实例对象调用动态添加的类方法')
zyh.TestMethod()
print(zyh)
print(zyh.weight)
print('另外一个实例对象张明')
zm=Student('张明',20)
print(zm)
# print(zm.weight)#无法使用
print('给类对象添加属性')
Student.school='北京邮电大学'#动态添加类属性
print(zm.school)#可以使用
print('执行动态添加的实例方法')
zyh.printInfo()#调用动态添加的实例方法(zm要使用就需要添加weight属性)

